package viqiang.ye.pattern.decorate;

/**
 * 意图：动态地给一个对象添加一些额外的职责。
 * 使用场景： 1、扩展一个类的功能。 2、动态增加功能，动态撤销。
 */
public class RedShapeDecorator extends ShapeDecorator {
    public RedShapeDecorator(Shape shape) {
        super(shape);
    }

    @Override
    public void draw() {
        super.draw();

        //新增的逻辑
        setRedBorder(shape);
    }

    /**
     * 新增的逻辑
     * @param decoratedShape
     */
    private void setRedBorder(Shape decoratedShape){
        System.out.println("Border Color: Red");
    }
}
